package edison.persistence;

import java.util.List;

import javax.jcr.Node;
import javax.jcr.NodeIterator;
import javax.jcr.Property;
import javax.jcr.PropertyIterator;

import edison.jcr.SessionContext;

public interface Dialect {
	void dropNodeTable(SessionContext context, String name);

	void createNodeTable(SessionContext context, String name, List<ColumnDescriptor> columns);

	void getPath(SessionContext context, String identify);

	void insertNode(SessionContext context, String name, List<ColumnValue> columns);

	Node getNode(SessionContext context, String path);

	NodeIterator getChildNodes(SessionContext context, String path, String[] nameGlobs);

	Property getProperty(SessionContext context, String path);

	PropertyIterator getProperties(SessionContext context, String path, String[] nameGlobs);
}
